package client;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.rmi.AccessException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.RemoteObject;
import java.rmi.server.UnicastRemoteObject;

import server.TFServer;

public class TFCliente extends RemoteObject{

    protected InfoCliente info = null;
    protected String serverIP = null;
    
    public TFCliente(String nombre, int port){
    
    	info = new InfoCliente();
    	setNombre(nombre);
    	
    	if (System.getSecurityManager() == null) {
            System.setSecurityManager(new SecurityManager());
        }	 
    }
    
    public void setNombre(String nombre){
    	this.info.setNombre(nombre);
    }
    
    public void setServerIP(String ip){
    	this.serverIP = ip;
    }
	
    public void comenzar() throws AccessException, RemoteException, NotBoundException{
    	
    	//Se registra en el la lista remota
    	TFCliente stub = (TFCliente) UnicastRemoteObject.exportObject(this, 0);
        Registry registry = LocateRegistry.getRegistry();
        registry.rebind(info.getNombre(), stub);
        
        // Recuerpa la referencia del server
        String name = "Server";
        Registry registryServer = LocateRegistry.getRegistry(serverIP);
        TFServer server = (TFServer) registryServer.lookup(name);
         
        //Manda su nombre al server
        server.addJugador(info.getNombre());        

    }
    
    public void cargarPantalla(String letra){
    	
    }
    
    public void finalizarJugada(String jugador){
    	
    }
}
